#魔法方法
# 在python中，有一些内置好的特定的方法，方法名是“__xxx__”,在进行特定的操作时会自动被调用，这些方法称之为魔法方法。
# 下面介绍几种常见的魔法方法。
# __init__方法：初始化一个类，在创建实例对象为其赋值时使用。
# __str__方法：在将对象转换成字符串 str(对象)测试的时候，打印对象的信息。
# __new__方法：创建并返回一个实例对象，调用了一次，就会得到一个对象。
# __class__方法：获得已知对象的类 ( 对象.__class__)。
# __del__方法：对象在程序运行结束后进行对象销毁的时候调用这个方法，来释放资源。
# ……
class Person:
    def __init__(self,name,age):
        self.name=name
        self.age=age
        pass
    '''
    定义了__str__方法，在打印对象的时候，会执行__str__方法。
    __str__方法只能return一个字符串。
    '''
    def __str__(self):
        return "名字是：{}，年龄为{}岁".format(self.name,self.age)
    pass
    def __new__(cls, *args, **kwargs):
        print("执行了new方法")
        return object.__new__(cls)
        pass
xw=Person("小王",26)
print(xw)
# 说一下init方法与new方法反而区别？

